// .代表除了换行符之外的任何字符
// +代表 1次或无数次
// \1，\2，其中\1表示引用第一个子表达式 （回溯引用，指的是模式的后面部分引用前面已经匹配到的子字符串）
const collectRepeatStr = (str) => {
  let repeatStrs = [];
  const repeatRe = /(.+)\1+/g;

  str.replace(repeatRe, ($0, $1) => {
    // $0是
    $1 && repeatStrs.push($1);
  });
};
/*
 * 1.写成表示有一个字符重复的正则
 *  /(.)\1/
 * 2.写出表示有n个字符重复的正则
 *  /(.+)\1+/
 * 3.提取所有重复的字符
 *  /(.+)\1+/g
 *
 **/
